Storage medium storing information processing program, information processing apparatus and information processing method

ABSTRACT

A game apparatus includes a CPU, and the CPU controls a moving object within a virtual space on the basis of acceleration data and angular velocity data which are transmitted from a controller. For example, before the angular velocity data is above a predetermined magnitude, a position and an orientation of the moving object is controlled on the basis of the angular velocity data. When the angular velocity data is above the predetermined magnitude, an initial velocity of the moving object is decided on the basis of the acceleration data, and a moving direction (orientation) of the moving object is decided on the basis of the angular velocity data. Thereafter, the moving object moves within the virtual space according to a general physical behavior.

CROSS REFERENCE OF RELATED APPLICATION

The disclosure of Japanese Patent Application No. 2008-174870 isincorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to a storage medium storing an informationprocessing program, an information processing apparatus, and aninformation processing method. More specifically, the present inventionrelates to a storage medium storing an information processing program,an information processing apparatus and an information processing methodfor controlling motions of an object in a virtual space on the basis ofa status signal output from a detecting means for detecting a statusincluding at least a position and an attitude of an input device.

2. Description of the Related Art

One example of the related art of an information processing apparatus ofsuch a kind is disclosed in Japanese Patent Application Laid-Open No.2000-308756 [A63F 13/00] laid-open on Nov. 7, 2000. An input controllingdevice of a game apparatus of the related art has a multi-axisacceleration sensor and a multi-axis gyro sensor. In the game apparatusutilizing this input controlling device, outputs from the multi-axisgyro sensor are used in order to produce orientation data relative toturning (twisting) a sword, orientation data relative to turning thesword forward and backward, and right and left. Furthermore outputs fromthe multi-axis acceleration sensor are used in order to produce data ofswinging a sword, such as data relative to strong and weak, and datarelative to movements in forward and backward, right and left, and upand down directions.

In the input controlling device of the related art, an attitude of theinput controlling device is calculated by utilizing angular velocityinformation of a rotational movement obtained from the multi-axis gyrosensor. In the related art, however, a detail of method of calculatingan attitude of the input controlling device is not described. In orderto calculate an attitude of a device with a gyro sensor, method ofaccumulating angular velocity information is generally employed.However, in the input controlling device with this multi-axis gyrosensor, the information obtained from the multi-axis gyro sensor wasonly used for calculating an attitude of the input controlling device,never giving versatility, such as throwing (moving) an object existingin a virtual space. In addition, in order to confirm other motions, amulti-axis acceleration sensor is required to be separately provided,making the input controlling device itself expensive.

SUMMARY OF THE INVENTION

Therefore, it is a primary object of the present invention to provide anovel storage medium storing an information processing program, a novelinformation processing apparatus and a novel information processingmethod.

Another object of the present invention is to provide a storage mediumstoring an information processing program, an information processingapparatus and an information processing method which are able to executevarious processing on the basis of a gyro signal.

The present invention employs following features in order to solve theabove-described problems. It should be noted that reference numerals andthe supplements inside the parentheses show one example of acorresponding relationship with the embodiments described later for easyunderstanding of the present invention, and do not limit the presentinvention.

A first invention is a storage medium storing an information processingprogram, and the information processing program causes a computer of aninformation processing apparatus controlling a motion of an objectwithin a virtual space on the basis of a status signal output from adetecting means for detecting a status including at least one of aposition and an attitude of an input device to function as a firstmotion controlling means for controlling the object such that itperforms a first motion within the virtual space on the basis of thestatus signal, a condition determining means for determining whether ornot information relative to a magnitude of the status signal satisfies apredetermined condition, and a second motion controlling means forcontrolling the object such that it performs a second motion differentfrom the first motion within the virtual space on the basis of thestatus signal in a case that the condition determining means determinesthat the information relative to a magnitude of the status signalsatisfies a predetermined condition.

In the first invention, an information processing program is executed bya computer (40, 42, etc.) of an information processing apparatus (12)controlling a motion of an object within a virtual space (104) on thebasis of a status signal output from a detecting means (24, 92) fordetecting a status including at least one of a position and an attitudeof an input device (22). A first motion controlling means (40, S5, S15)controls the object such that it performs a first motion within thevirtual space on the basis of the status signal. A condition determiningmeans (40, S21, S63, S73) determines whether or not information relativeto a magnitude of the status signal satisfies a predetermined condition.A second motion controlling means (40, S29) controls the object suchthat it performs a second motion different from the first motion withinthe virtual space on the basis of the status signal in a case that thecondition determining means determines that information relative to amagnitude of the status signal satisfies a predetermined condition.

According to the first invention, an object is caused to performdifferent motions on the basis of a magnitude of a status signal, sothat it is possible to execute various processing based on a statussignal relative to a position and an attitude of the controller.

A second invention is according to the first invention, and thedetecting means includes a gyro sensor, and the status signal is a gyrosignal.

In the second invention, the detecting means includes a gyro sensor, anda status including at least a position and an attitude of the inputdevice is detected on the basis of a gyro signal of the gyro sensor.

According to the second invention, a position and an attitude of theinput device are detected by utilizing a general-purpose sensor, such asa gyro sensor, allowing a movement of the object in the virtual space tobe controlled by detecting a position and an attitude of the inputdevice with a simple configuration.

A third invention is according to the second invention, and thecondition determining means includes a gyro magnitude calculating meansfor calculating a magnitude of the gyro signal and a first gyromagnitude determining means for determining whether or not the magnitudeof the gyro signal calculated by the gyro magnitude calculating means isabove a first predetermined value, and the second motion controllingmeans controls the object such that it performs the second motion in acase that the first gyro magnitude determining means determines that themagnitude of the gyro signal is above the first predetermined value.

In the third invention, the condition determining means includes a gyromagnitude calculating means (40, S5) and a first gyro magnitudedetermining means (40, S73). The gyro magnitude calculating meanscalculates a magnitude of the gyro signal. The first gyro magnitudedetermining means determines whether or not the magnitude of the gyrosignal calculated by the gyro magnitude calculating means is above afirst predetermined value. The second motion controlling means controlsa movement of the object according to the attitude determined based onthe gyro signal, for example, such that it performs the second motion ina case that the first gyro magnitude determining means determines thatthe magnitude of the gyro signal is above the first predetermined value(“YES” in S73).

According to the third invention, in a case that the magnitude of thegyro signal is above the first predetermined value, a movement of theobject within the three-dimensional virtual space can be controlled onthe basis of the gyro signal.

A fourth invention is according to the third invention, and the secondmotion controlling means includes a movement controlling means forcontrolling a moving velocity and a moving direction of the object onthe basis of the gyro signal in a case that it is determined that themagnitude of the gyro signal is above the first predetermined value.

In the fourth invention, a movement controlling means (40) controls amoving velocity and a moving direction of an object on the basis of thegyro signal in a case that it is determined that the magnitude of thegyro signal is above the first predetermined value. For example, aninitial velocity and a direction of the object are decided, and then,the object is moved according to a general calculation of physics.

According to the fourth invention, it is possible to control themovement of the object on the basis of the gyro signal.

A fifth invention is according to the third invention, and the inputdevice further includes an acceleration sensor, the informationprocessing program causes the computer to further function as anacceleration calculating means for calculating an acceleration signalcorresponding to an acceleration occurring to the input device on thebasis of an output from the acceleration sensor, the second motioncontrolling means includes a moving velocity controlling means forcontrolling a moving velocity of the object on the basis of theacceleration signal calculated by the acceleration calculating means ina case that it is determined that the magnitude of the gyro signal isabove the first predetermined value, a moving direction controllingmeans for controlling a moving direction of the object on the basis ofthe gyro signal in a case that it is determined that the magnitude ofthe gyro signal is above the first predetermined value.

In the fifth invention, the input device further comprises anacceleration sensor (74). The information processing program causes thecomputer to further function as an acceleration calculating means (40).The acceleration calculating means calculates an acceleration signalcorresponding to an acceleration occurring to the input device on thebasis of an output from the acceleration sensor. A moving velocitycontrolling means (40, S103) controls a moving velocity of the object onthe basis of the acceleration signal calculated by the accelerationcalculating means in a case that it is determined that the magnitude ofthe gyro signal is above the first predetermined value (“YES” in S73).For example, an initial velocity of the object is calculated.Furthermore, a moving direction controlling means (40, S85) controls amoving direction of the object on the basis of the gyro signal in a casethat it is determined that the magnitude of the gyro signal is above afirst predetermined value (“YES” in S73). For example, a direction ofthe initial velocity of the object, that is, a moving direction at astart of the movement is calculated.

According to the fifth invention, a moving velocity of the object iscontrolled on the basis of the acceleration calculated based on anoutput from the acceleration sensor provided to the controller, and amoving direction of the object is controlled on the basis of the gyrosignal, so that it is possible to execute more various processing thanwhen only the gyro signal is used.

A sixth invention is according to the third invention, and theinformation processing program causes the computer to further functionas a gyro magnitude storing means for sequentially storing magnitudedata corresponding to the magnitude of the gyro signal in a storingmeans, an extreme calculating means for calculating, on the basis ofmagnitudes of a plurality of gyro signals indicated by the magnitudedata stored in the storing means, an extreme of the magnitudes of thegyro signals, a second gyro magnitude determining means for determiningwhether or not the extreme of the magnitude of the gyro signalcalculated by the extreme calculating means is above a secondpredetermined value, and the second motion controlling means controlsthe object such that it performs the second motion within the virtualspace on the basis of the gyro signal in a case that the second gyromagnitude determining means determines that the extreme is above thesecond predetermined value.

In the sixth invention, the information processing program causes thecomputer to further function as a gyro magnitude storing means (40, 502,S5, S13), an extreme calculating means (40, S57-S71), and a second gyromagnitude determining means (40, S73). The gyro magnitude storing meanssequentially stores magnitude data (502 b) corresponding to themagnitude of the gyro signal in a storing means. The extreme calculatingmeans calculates on the basis of magnitudes of a plurality of gyrosignals indicated by the magnitude data stored in the storing means, anextreme of the magnitudes of the gyro signals. The second gyro magnitudedetermining means determines whether or not the extreme of the magnitudeof the gyro signal calculated by the extreme calculating means is abovea second predetermined value. The second motion controlling meanscontrols the object such that it performs the second motion within thevirtual space on the basis of the gyro signal in a case that the secondgyro magnitude determining means determines that the extreme is abovethe second predetermined value (“YES” in S73).

According to the sixth invention, in a case that an extreme of themagnitude of the gyro signal is above the second predetermined value,the object is moved by the second motion controlling means, preventing amalfunction due to an erroneous detection from occurring.

A seventh invention is according to the third invention, and theinformation processing apparatus is a game apparatus for controlling amotion of the object within the virtual space.

In the seventh invention, the information processing apparatus is a gameapparatus (12) for controlling a motion of the object within the virtualspace.

According to the seventh invention, it is possible to cause the objectof the game in the virtual space to perform various processing on thebasis of the gyro signal.

An eighth invention is according to the seventh invention, wherein thesecond motion controlling means includes a movement controlling meansfor controlling a moving velocity and a moving direction of the objecton the basis of the gyro signal in a case that it is determined that themagnitude of the gyro signal is above the first predetermined value.

In the eighth invention also, similar to the fourth invention, it ispossible to control the movement of the object on the basis of the gyrosignal.

A ninth invention is according to the seventh invention, and the inputdevice further comprises an acceleration sensor, the informationprocessing program causes the computer to further function as anacceleration calculating means for calculating an acceleration signalcorresponding to an acceleration occurring to the input device on thebasis of an output from the acceleration sensor, and the second motioncontrolling means includes a moving velocity controlling means forcontrolling a moving velocity of the object on the basis of theacceleration signal calculated by the acceleration calculating means ina case that it is determined that the magnitude of the gyro signal isabove the first predetermined value, and a moving direction controllingmeans for controlling a moving direction of the object on the basis ofthe gyro signal in a case that the magnitude of the gyro signal is abovethe first predetermined value.

In the ninth invention also, similar to the fifth invention, it ispossible to execute more various processing than when only the gyrosignal is used.

A tenth invention is according to the seventh invention, and theinformation processing program causes the computer to further functionas a gyro magnitude storing means for sequentially storing magnitudedata corresponding to the magnitude of the gyro signal in a storingmeans, an extreme calculating means for calculating, on the basis ofmagnitudes of a plurality of gyro signals indicated by the magnitudedata stored in the storing means, an extreme of the magnitudes of thegyro signals, a second gyro magnitude determining means for determiningwhether or not the extreme of the magnitude of the gyro signalcalculated by the extreme calculating means is above a secondpredetermined value, and the second motion controlling means controlsthe object such that it performs the second motion within the virtualspace on the basis of the gyro signal in a case that the second gyromagnitude determining means determines that the extreme is above thesecond predetermined value.

According to the tenth invention also, similar to the sixth invention,it is possible to prevent malfunction due to an erroneous detection fromoccurring.

An eleventh invention is according to the first invention, and the firstmotion controlling means includes an arrangement controlling means forarranging the object within the virtual space according to at least anyone of a position and an orientation which are decided on the basis ofthe status signal.

In the eleventh invention, an arrangement controlling means (40, S17)arranges the object within the virtual space according to at least anyone of a position and an orientation which are decided on the basis ofthe status signal.

According to the eleventh invention, it is possible to arrange theobject corresponding to positions and attitudes of the input device.Thus, the arranging positions of the object are also changed dependingon the change in positions and attitudes of the input device. That is,the motion of the object is controlled.

A twelfth invention is an information processing apparatus controlling amotion of an object within a virtual space on the basis of a statussignal output from a detecting means for detecting a status including atleast one of a position and an attitude of an input device, comprises afirst motion controlling means for controlling the object such that itperforms a first motion within the virtual space on the basis of thestatus signal, a condition determining means for determining whether ornot information relative to a magnitude of the status signal satisfies apredetermined condition, and a second motion controlling means forcontrolling the object such that it performs a second motion differentfrom the first motion within the virtual space on the basis of thestatus signal in a case that the condition determining means determinesthat the information relative to a magnitude of the status signalsatisfies a predetermined condition.

In the twelfth invention also, similar to the first invention, it ispossible to execute various processing on the basis of a status signalrelative to a position and an attitude of the input device.

A thirteenth invention is an information processing method of aninformation processing apparatus for controlling a motion of an objectwithin a virtual space on the basis of a status signal output from adetecting means for detecting a status including at least one of aposition and an attitude of an input device including steps of:(a)controlling the object such that it performs a first motion within thevirtual space on the basis of the status signal, (b) determining whetheror not information relative to a magnitude of the status signalsatisfies a predetermined condition, and (c) controlling the object suchthat it performs a second motion different from the first motion withinthe virtual space on the basis of the status signal in a case that thestep (b) determines that the information relative to a magnitude of thestatus signal satisfies a predetermined condition.

In the thirteenth invention also, similar to the first invention, it ispossible to execute various processing on the basis of a status signalrelative to a position and an attitude of the input device.

The above described objects and other objects, features, aspects andadvantages of the present invention will become more apparent from thefollowing detailed description of the present invention when taken inconjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustrative view showing one embodiment of a game systemof the present invention;

FIG. 2 is a block diagram showing an electric configuration of the gamesystem shown in FIG. 1;

FIG. 3 is an illustrative view explaining an external view of the acontroller shown in FIG. 1;

FIG. 4 is an illustrative view for explaining an external view of thecontroller connected with the gyro sensor unit shown in FIG. 1 and thegyro sensor unit;

FIG. 5 is a block diagram showing an electric configuration of thecontroller connected with the gyro sensor unit shown in FIG. 1;

FIG. 6 is an illustrative view for roughly explaining a state that agame is played by using the controller connected with the gyro sensorunit shown in FIG. 1;

FIG. 7 is an illustrative view for explaining viewing angles of markersand the controller shown in FIG. 1;

FIG. 8 is an illustrative view showing one example of an imaged imageincluding object images;

FIG. 9 is an illustrative view showing an example of a first game screendisplayed on the monitor shown in FIG. 1;

FIG. 10 is an illustrative view showing an example of a second gamescreen displayed on the monitor shown in FIG. 1;

FIG. 11 is an illustrative view showing an example of a third gamescreen displayed on the monitor shown in FIG. 1;

FIG. 12 is an illustrative view showing an example of a fourth gamescreen displayed on the monitor shown in FIG. 1;

FIG. 13 is an illustrative view showing an example of a fifth gamescreen displayed on the monitor shown in FIG. 1;

FIG. 14 is an illustrative view showing an example of a sixth gamescreen displayed on the monitor shown in FIG. 1;

FIG. 15 is an illustrative view showing a memory map of a main memoryshown in FIG. 2;

FIG. 16 is an illustrative view showing a concrete example of the datamemory area shown in FIG. 15;

FIG. 17 is an illustrative view for explaining a method of deciding aposition and an orientation of a moving object;

FIG. 18 is an illustrative view for explaining a method of deciding aposition and an orientation of the moving object;

FIG. 19 is an illustrative view showing an example of a moving velocityand a rotational velocity of the moving object, and a force worked onthe moving object;

FIG. 20 is an illustrative view showing another example of a forceworked on the moving object;

FIG. 21 is a flowchart showing a part of the entire process by the CPUshown in FIG. 2;

FIG. 22 is a flowchart being another part of the entire process by theCPU shown in FIG. 2, and a sequel to FIG. 21;

FIG. 23 is a flowchart showing throwing determining processing by theCPU shown in FIG. 2;

FIG. 24 is a flowchart showing throwing simulation processing by the CPUshown in FIG. 2;

FIG. 25 is a flowchart showing throwing processing by the CPU shown inFIG. 2; and

FIG. 26 is a flowchart showing physical behavior processing by the CPUshown in FIG. 2.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Referring to FIG. 1, a game system 10 of one embodiment of the presentinvention includes a video game apparatus (hereinafter referred to as a“game apparatus”) 12 functioning as an information processing apparatus,and a controller 22. Although illustration is omitted, the gameapparatus 12 of this embodiment is designed such that it can beconnected to four controllers 22 at the maximum. Furthermore, the gameapparatus 12 and the respective controllers 22 are connected by awireless manner. The wireless communication is executed according to aBluetooth (registered trademark) standard, for example, but may beexecuted by other standards such as infrared rays, a wireless LAN. Inaddition, it may be connected by a wire. Furthermore, in thisembodiment, the controller 22 is connected (coupled) with a gyro unit24.

The game apparatus 12 includes a roughly rectangular parallelepipedhousing 14, and the housing 14 is furnished with a disk slot 16 on afront surface. An optical disk 18 as one example of an informationstorage medium storing game program, etc. is inserted through the diskslot 16 to be loaded into a disk drive 54 (see FIG. 2) within thehousing 14. Although illustration is omitted, around the disk slot 16,an LED and a light guide plate are arranged such that the LED of thedisk slot 16 can light on or off in accordance with various processing.

Furthermore, on the front surface of the housing 14 of the gameapparatus 12, a power button 20 a and a reset button 20 b are providedat the upper part thereof and an eject button 20 c is provided belowthem. In addition, a connector cover for external memory card 28 isprovided between the reset button 20 b and the eject button 20 c, and inthe vicinity of the disk slot 16. Inside the connector cover forexternal memory card 28, a connector for external memory card 62 (seeFIG. 2) is provided, through which an external memory card (hereinaftersimply referred to as a “memory card”) not shown is inserted. The memorycard is employed for loading the game program, etc. read from theoptical disk 18 to temporarily store it, storing (saving) game data(result data or proceeding data of the game) of the game played by meansof the game system 10, and so forth. It should be noted that storing thegame data described above may be performed on an internal memory, suchas a flash memory 44 (see FIG. 2) inside the game apparatus 12 in placeof the memory card. Also, the memory card may be utilized as a backupmemory for the internal memory. In addition, in the game apparatus 12,other applications except for the game may be executed, and in such acase, data of the other applications can be stored in the memory card.

Here, a general-purpose SD card can be employed as a memory card, butother general-purpose memory cards, such as memory sticks, a multimediacard (registered trademark) can be employed.

Although omitted in FIG. 1, the game apparatus 12 has an AV cableconnector 58 (FIG. 2) on the rear surface of the housing 14, and byutilizing the AV cable connector 58, a monitor 34 and a speaker 34 a areconnected to the game apparatus 12 through an AV cable 32 a. The monitor34 and the speaker 34 a typically are a color television receiver, andthrough the AV cable 32 a, a video signal from the game apparatus 12 isinput to a video input terminal of the color television, and a soundsignal from the game apparatus 12 is input to a sound input terminal.Accordingly, a game image of a three-dimensional (3D) video game, forexample, is displayed on the screen of the color television (monitor)34, and stereo game sound such as a game music, a sound effect, etc. isoutput from the right and left speakers 34 a. Around the monitor 34 (onthe top side of the monitor 34, in this embodiment), a marker unit 34 bincluding two infrared ray LEDs (markers) 340 m and 340 n is provided.The marker unit 34 b is connected to the game apparatus 12 through apower source cable 32 b. Accordingly, the marker unit 34 b is suppliedwith power from the game apparatus 12. Thus, the markers 340 m and 340 nemit lights ahead of the monitor 34.

Furthermore, the power of the game apparatus 12 is applied by means of ageneral AC adapter (not illustrated). The AC adapter is inserted into astandard wall socket for home use, and the game apparatus 12 transformsthe house current (commercial power supply) to a low DC voltage signalsuitable for driving. In another embodiment, a battery may be utilizedas a power supply.

In the game system 10, a user or a player turns the power of the gameapparatus 12 on for playing the game (or applications other than thegame). Then, the user selects an appropriate optical disk 18 storing aprogram of a video game (or other applications the player wants toplay), and loads the optical disk 18 into the disk drive 54 of the gameapparatus 12. In response thereto, the game apparatus 12 starts toexecute a video game or other applications on the basis of the programrecorded in the optical disk 18. The user operates the controller 22 inorder to apply an input to the game apparatus 12. For example, byoperating any one of the input means 26, a game or other application isstarted. Besides the operation of the input means 26, by moving thecontroller 22 itself, it is possible to move a moving image object(player object) in different directions or change a perspective of theuser (camera position) in a 3-dimensional game world.

Here, programs of the video game and other applications may be stored(installed) in an internal memory (flash memory 42 (see FIG. 2)) of thegame apparatus 12 so as to be executed from the internal memory. In sucha case, programs stored in a storage medium like an optical disk 18 maybe installed onto the internal memory, or downloaded programs may beinstalled onto the internal memory.

FIG. 2 is a block diagram showing an electric configuration of the videogame system 10 in FIG. 1 embodiment. Although illustration is omitted,the respective components within the housing 14 are mounted on a printedboard. As shown in FIG. 2, the game apparatus 12 has a CPU 40. The CPU40 functions as a game processor. The CPU 40 is connected with a systemLSI 42. The system LSI 42 is connected with an external main memory 46,a ROM/RTC 48, a disk drive 54, and an AV IC 56.

The external main memory 46 is utilized as a work area or a buffer areaof the CPU 40 by storing programs like a game program, etc., and variousdata. The ROM/RTC 48, the so-called hoot ROM, is incorporated with aprogram for activating the game apparatus 12, and provided with a timecircuit for counting a time. The disk drive 54 reads a program, imagedata, sound data, etc. from the optical disk 18, and writes them in aninternal main memory 42 e described later or the external main memory 46under the control of the CPU 40.

The system LSI 42 is provided with an input-output processor 42 a, a CPU(Graphics Processor Unit) 42 b, a DSP (Digital Signal Processor) 42 c, aVRAM 42 d and an internal main memory 42 e. These are connected witheach other by internal buses although illustration is omitted. Theinput-output processor (I/O processor) 42 a executes transmission andreception of data, downloads of data, and so forth. A detaileddescription is made later as to transmission and reception and downloadof the data.

The GPU 42 b is made up of a part of a rendering means, and receives agraphics command (construction command) from the CPU 40 to generate gameimage data according to the command. Additionally, the CPU 40 applies animage generating program required for generating game image data to theGPU 42 b in addition to the graphics command.

Although illustration is omitted, the GPU 42 h is connected with theVRAM 42 d as described above. The GPU 42 b accesses the VRAM 42 d toacquire the data (image data; data such as polygon data, texture data,etc.) required to execute the construction command. Additionally, theCPU 40 writes the image data required for drawing to the VRAM 42 d viathe CPU 42 b. The CPU 42 b accesses the VRAM 42 d to create game imagedata for drawing.

In this embodiment, a description is made on a case that the GPU 42 bgenerates game image data, but in a case of executing an arbitraryapplication except for the game application, the GPU 42 b generatesimage data as to the arbitrary application.

Furthermore, the DSP 42 c functions as an audio processor, and generatesaudio data corresponding to a sound, a voice, music, or the like bymeans of the sound data and the sound wave (tone) data which are storedin the internal main memory 42 e and the external main memory 46.

The game image data and audio data which are generated as describedabove are read by the AV IC 56, and output to the monitor 34 and thespeaker 34 a via the AV connector 58. Accordingly, a game screen isdisplayed on the monitor 34, and a sound (music) necessary for the gameis output from the speaker 34 a.

Furthermore, the input-output processor 42 a is connected with a flashmemory 44, a wireless communication module 50, a wireless controllermodule 52, an expansion connector 60 and a connector for external memorycard 62. The wireless communication module 50 is connected with anantenna 50 a, and the wireless controller module 52 is connected with anantenna 52 a.

Although illustration is omitted, the input-output processor 42 a cancommunicate with other game apparatuses and various servers to beconnected to a network via the wireless communication module 50. Itshould be noted that it is possible to directly communicate with othergame apparatuses without going through the network. The input-outputprocessor 42 a periodically accesses the flash memory 44 to detect thepresence or absence of data (referred to as transmission data) requiredto be transmitted to a network, and, in a case that the transmissiondata is present, transmits it to the network via the wirelesscommunication module 50 and the antenna 50 a. Furthermore, theinput-output processor 42 a receives data (referred to as receptiondata) transmitted from other game apparatuses via the network, theantenna 50 a and the wireless communication module 50, and stores thereception data in the flash memory 44. If the reception data does notsatisfy a predetermined condition, the reception data is abandoned as itis. In addition, the input-output processor 42 a receives data (downloaddata) downloaded from the download server via the network, the antenna50 a and the wireless communication module 50, and stores the downloaddata in the flash memory 44.

Furthermore, the input-output processor 42 a receives input datatransmitted from the controller 22 via the antenna 52 a and the wirelesscontroller module 52, and (temporarily) stores it in the buffer area ofthe internal main memory 42 e or the external main memory 46. The inputdata is erased from the buffer area after being utilized in theprocessing by the CPU 40 (game processing, for example).

In this embodiment, as described above, the wireless controller module52 performs a communication with the controller 22 in accordance withBluetooth standards.

In addition, the input-output processor 42 a is connected with theexpansion connector 60 and the connector for external memory card 62.The expansion connector 60 is a connector for interfaces, such as USB,SCSI, etc., and can be connected with medium such as an external storageand peripheral devices such as another controller different from thecontroller 22. Furthermore, the expansion connector 60 is connected witha cable LAN adaptor, and can utilize the cable LAN in place of thewireless communication module 50. The connector for external memory card62 can be connected with an external storage like a memory card. Thus,for example, the input-output processor 42 a accesses the externalstorage via the expansion connector 60 and the connector for externalmemory card 62 to store and read the data.

Although a detailed description is omitted, as shown in FIG. 1, the gameapparatus 12 (housing 14) is furnished with the power button 20 a, thereset button 20 b, and the eject button 20 c. The power button 20 a isconnected to the system LSI 42. Then the power button 20 a is turned on,the system LSI 42 is set to a mode of a normal energized state in whichthe respective components of the game apparatus 12 are supplied withpower through an AC adapter not shown (referred to as “normal mode”). Onthe other hand, when the power button 20 a is turned off, the system LSI42 is set to a mode in which only a part of the components of the gameapparatus 12 is supplied with power, and the power consumption isreduced to minimum (hereinafter referred to as a “standby mode”).

In this embodiment, in a case that the standby mode is set, the systemLSI 42 issues an instruction to stop supplying the power to thecomponents except for the input-output processor 42 a, the flash memory44, the external main memory 46, the ROM/RTC 48, the wirelesscommunication module 50, and the wireless controller module 52.Accordingly, in this embodiment, in the standby mode, the CPU 40 neverperforms the application.

Although the system LSI 42 is supplied with power even in the standbymode, generation of clocks to the CPU 42 b, the DSP42 c and the VRAM 42d are stopped so as not to be driven, realizing reduction in powerconsumption.

Although illustration is omitted, inside the housing 14 of the gameapparatus 12, a fan is provided for excluding heat of the IC, such asthe CPU 40, the system LSI 42, etc. to outside. In the standby mode, thefan is also stopped.

However, in a case that utilizing the standby mode is not desired, bymaking the standby mode unusable, when the power button 20 a is turnedoft, the power supply to all the circuit components are completelystopped.

Furthermore, switching between the normal mode and the standby mode canbe performed by turning on and off the power switch 26 h of thecontroller 22 by remote control. If the remote control is not performed,setting is made such that the power supply to the wireless controllermodule 52 a is not performed in the standby mode.

The reset button 20 b is also connected to the system LSI 42. When thereset button 20 b is pushed, the system LSI 42 restarts the activationprogram of the game apparatus 12. The eject button 20 c is connected tothe disk drive 54. When the eject button 20 c is pushed, the opticaldisk 18 is removed from the disk drive 54.

FIG. 3(A) to FIG. 3(E) show one example of an external appearance of thecontroller 22. FIG. 3(A) shows a leading end surface of the controller22, FIG. 3(B) shows a top surface of the controller 22, FIG. 3(C) showsa right surface of the controller 22, FIG. 3(D) shows a bottom surfaceof the controller 22, and FIG. 3(E) shows a trailing end of thecontroller 22.

Referring to FIG. 3(A) to FIG. 3(E), the controller 22 has a housing 22a formed by plastic molding, for example. The housing 22 a is formedinto an approximately rectangular parallelepiped shape and has a sizesmall enough to be held by one hand of a user. The housing 22 a(controller 22) is provided with the input means (a plurality of buttonsor switches) 26. Specifically, as shown in FIG. 3(B), on a top surfaceof the housing 22a, there are provided a cross key 26 a, a 1 button 26b, a 2 button 26 c, an A button 26 d, a − button 26 e, a HOME button 26f, a + button 26 g and a power switch 26 h. Moreover, as shown in FIG.3(C) and FIG. 3(D), an inclined surface is formed on a bottom surface ofthe housing 22 a, and a B-trigger switch 26 i is formed on the inclinedsurface.

The cross key 26 a is a four directional push switch, including fourdirections of front (or upper), back (or lower), right and leftoperation parts. By operating any one of the operation parts, it ispossible to instruct a moving direction of a character or an object(player character or player object) that is operable by a player,instruct the moving direction of a cursor, or merely instruct thedirection.

The 1 button 26 b and the 2 button 26 c are respectively push buttonswitches. They are used for a game operation, such as adjusting aviewpoint position and a viewpoint direction in displaying the 3D gameimage, i.e. a position and an image angle of a virtual camera.Alternatively, the 1 button 26 b and the 2 button 26 e can be used forthe same operation as that of the A-button 26 d and the B-trigger switch26 i or an auxiliary operation.

The A-button switch 26 d is the push button switch, and is used forcausing the player character or the player object to take an actionother than a directional instruction, specifically arbitrary actionssuch as hitting (punching), throwing, grasping (acquiring), riding, andjumping, etc. For example, in an action game, it is possible to give aninstruction to jump, punch, move a weapon, and so forth. Also, in a rollplaying game (RPG) and a simulation RPG, it is possible to instruct toacquire an item, select and determine the weapon and command, and soforth. Furthermore, in a case that the controller 22 is used as apointing device, the A-button switch 26 d is used to instruct a decisionof an icon or a button image instructed by a pointer (instruction image)on the game screen. For example, when the icon or the button image isdecided, an instruction or a command set in advance correspondingthereto can be input.

The − button 26 e, the HOME button 26 f, the + button 26 g, and thepower supply switch 26 h are also push button switches. The − button 26e is used for selecting a game mode. The HOME button 26 f is used fordisplaying a game menu (menu screen). The + button 26 g is used forstarting (resuming) or pausing the game. The power supply switch 26 h isused for turning on/off a power supply of the game apparatus 12 byremote control.

In this embodiment, note that the power supply switch for turning on/offthe controller 22 itself is not provided, and the controller 22 is setat on-state by operating any one of the switches or buttons of the inputmeans 26 of the controller 22, and when not operated for a certainperiod of time (30 seconds, for example) or more, the controller 22 isautomatically set at off-state.

The B-trigger switch 26 i is also the push button switch, and is mainlyused for inputting a trigger such as shooting, and designating aposition selected by the controller 22. In a case that the B-triggerswitch 26 i is continued to be pushed, it is possible to make movementsand parameters of the player object constant. In a fixed case, theB-trigger switch 26 i functions in the same way as a normal B-button,and is used for canceling the action and the command determined by theA-button 26 d.

As shown in FIG. 3(E), an external expansion connector 22 b is providedon a trailing end surface of the housing 22 a, and as shown in FIG.3(B), an indicator 22 c is provided on the top surface and on the sideof the trailing end surface of the housing 22 a. The external expansionconnector 22 b is utilized for connecting another expansion controllernot shown other than the controller 22. The indicator 22 c is made up offour LEDs, for example. The indicator 22 c can show identificationinformation (controller number) of the controller 22 by lighting any oneof the four LEDs and according to the lighted LED, and show theremaining amount of the battery of the controller 22 depending on thenumber of LEDs to be emitted.

In addition, the controller 22 has an imaged information arithmeticsection 80 (see FIG. 4), and as shown in FIG. 3(A), a light incidentopening 22 d of the imaged information arithmetic section 80 is providedon the leading end surface of the housing 22 a. Furthermore, thecontroller 22 has a speaker 86 (see FIG. 4), and the speaker 86 isprovided inside the housing 22 a at the position corresponding to asound release hole 22 e between the 1 button 26 b and the HOME button 26f on the top surface of the housing 22 a as shown in FIG. 3(B).

Note that as shown in FIG. 3(A) to FIG. 3(E), the shape of thecontroller 22 and the shape, number and setting position of each inputmeans 26 are simply examples, and needless to say, even if they aresuitably modified, the present invention can be implemented.

FIG. 4(A) is an illustrative view showing a state that the gyro unit 24is connected to the controller 22 as shown in FIG. 1. The gyro unit 24is connected to the trailing end surface of the controller 22 (on theside of the indicator 22 c). As shown in FIG. 4(B), the gyro unit 24 hasa housing 24 a formed by plastics molding similar to the controller 22.The housing 24 a is a substantially cubic shape, and has an attachmentplug 24 b to be connected to the external expansion connector 22 b ofthe controller 22 on the side for connection to the controller 22.Furthermore, as shown in FIG. 4(C), on the opposite side to the sidewhere the attachment plug 24 b is provided, an external expansionconnector 24 c is provided.

FIG. 5 is a block diagram showing an electric configuration of thecontroller 22 and the gyro unit 24. Referring to FIG. 5, the controller22 includes a processor 70, and the processor 70 is connected with theexternal expansion connector 22 b, the input means 26, a memory 72, anacceleration sensor 74, a wireless module 76, the imaged informationarithmetic section 80, an LED 82 (the indicator 22 c), an vibrator 84, aspeaker 86, and a power supply circuit 88 by an internal bus (notshown). Moreover, an antenna 78 is connected to the wireless module 76.

For simplicity, although omitted in FIG. 5, the indicator 22 c is madeup of the four LEDs 82 as described above.

The processor 70 is in charge of an overall control of the controller22, and transmits (inputs) information (input information) input by theinput means 26, the acceleration sensor 74, and the imaged informationarithmetic section 80 as input data to the game apparatus 12 via thewireless module 76 and the antenna 78. At this time, the processor 70uses the memory 72 as a working area or a buffer area. An operationsignal (operation data) from the aforementioned input means 26 (26 a to26 i) is input to the processor 70, and the processor 70 stores theoperation data once in the memory 72.

Moreover, the acceleration sensor 74 detects each acceleration of thecontroller 22 in directions of three axes of vertical direction (z-axialdirection), lateral direction (y-axial direction), and forward andrearward directions (x-axial direction). The acceleration sensor 74 istypically an acceleration sensor of an electrostatic capacity type, butthe acceleration sensor of other type may also be used.

For example, the acceleration sensor 74 detects the accelerations (ax,ay, and az) in each direction of x-axis, y-axis, z-axis for each firstpredetermined time, and inputs the data of the acceleration(acceleration data) thus detected to the processor 70. For example, theacceleration sensor 74 detects the acceleration in each direction of theaxes in a range from −2.0 g to 2.0 g (g indicates a gravitationalacceleration. The same thing can be said hereafter.) The processor 70detects the acceleration data given from the acceleration sensor 74 foreach second predetermined time, and stores it in the memory 72 once.

The processor 70 creates input data including at least one of theoperation data, acceleration data, marker coordinate data as describedlater and angular velocity data as described later, and transmits theinput data thus created to the game apparatus 12 for each thirdpredetermined time (5 msec, for example).

In this embodiment, although omitted in FIG. 3(A) to FIG. 3(E), theacceleration sensor 74 is provided inside the housing 22 a on thecircuit board in the vicinity of where the cross key 26 a is arranged.

The wireless module 76 modulates a carrier of a predetermined frequencyby the input data, by using a technique of Bluetooth, for example, andemits its weak radio wave signal from the antenna 78. Namely, the inputdata is modulated to the weak radio wave signal by the wireless module76 and transmitted from the antenna 78 (controller 22). The weak radiowave signal thus transmitted is received by the wireless controllermodule 52 provided to the aforementioned game apparatus 12. The weakradio wave thus received is subjected to demodulating and decodingprocessing. This makes it possible for the game apparatus 12 (CPU 40) toacquire the input data from the controller 22. Then, the CPU 40 performsprocessing of the application (game processing), following the acquiredinput data and the application program (game program).

In addition, as described above, the controller 22 is provided with theimaged information arithmetic section 80. The imaged informationarithmetic section 80 is made up of an infrared rays filter 80 a, a lens80 b, an imager 80 c, and an image processing circuit 80 d. The infraredrays filter 80 a passes only infrared rays from the light incident fromthe front of the controller 22. As described above, the markers 340 mand 340 n placed near (around) the display screen of the monitor 34 areinfrared LEDs for outputting infrared lights ahead of the monitor 34.Accordingly, by providing the infrared rays filter 80 a, it is possibleto image the image of the markers 340 m and 340 n more accurately. Thelens 80 b condenses the infrared rays passing thorough the infrared raysfilter 80 a to emit them to the imager 80 c. The imager 80 c is a solidimager, such as a CMOS sensor and a CCD, for example, and images theinfrared rays condensed by the lens 80 b. Accordingly, the imager 80 cimages only the infrared rays passing through the infrared rays filter80 a to generate image data. Hereafter, the image imaged by the imager80 c is called an “imaged image”. The image data generated by the imager80 c is processed by the image processing circuit 80 d. The imageprocessing circuit 80 d calculates a position of an object to be imaged(markers 340 m and 340 n) within the imaged image, and outputs eachcoordinate value indicative of the position to the processor 70 asimaged data (marker coordinate data to be described later) for eachfourth predetermined time. It should be noted that a description of theprocess in the image processing circuit 80 d is made later.

Furthermore, the controller 22 is connected with the gyro unit 24. Asunderstood from FIG. 5, the separable attachment plug 24 b is connectedto the external expansion connector 22 b. The separable attachment plug24 b is connected with the microcomputer 90 with a signal line. Themicrocomputer 90 is connected with the gyro sensor 92, and connectedwith the external expansion connector 24 c with a signal line.

The gyro sensor 92 detects angular velocities about three axes ofvertical direction (about a z-axial direction), lateral direction (abouta y-axial direction), and forward and rearward directions (about anx-axial direction) of the controller 22. Here, a rotation about the Zaxis is represented by a yaw angle, a rotation about the Y axis isrepresented by a pitch angle, and a rotation about the X axis isrepresented by a roll angle. The gyro sensor 74 can employ a typicallypiezoelectric vibration type, but may employ other types.

For example, the gyro sensor 92 detects an angular velocity (ωx, ωy, ωz)in relation to each of the X axis, the Y axis, and the Z axis everyfourth predetermined time, and inputs the detected angular velocities tothe microcomputer 90. Here, when the angular velocities are convertedfrom analog signals to digital data when input to the microcomputer 90.The gyro sensor 92 used in this embodiment can measure an angularvelocity relative to each axis in the range from 0 to 1500 dps (degreepercent second). In the virtual game of this embodiment described later,the range from 900 to 1500 dps is a range of measure relative to the yawangle, and the range from 0 to 1500 dps is a range of measure relativeto the pitch angle and the roll angle.

The microcomputer 90 detects an angular velocity applied from the gyrosensor 92 every fifth predetermined time, and temporarily stores angularvelocity data corresponding to the angular velocity in a memory (notillustrated) included in the microcomputer 90. Then, the microcomputer90 transmits the angular velocity data temporarily stored in the memoryto the controller 22 (processor 70) every sixth predetermined time.

Noted that in this embodiment, the microcomputer 90 temporarily storesthe angular velocity data in the memory, and transmits the same inbatches to a certain degree to the processor 70, but may directlytransmit the angular velocity data to the processor 70 withouttemporarily storing the same in the memory.

FIG. 6 is an illustrative view summarizing a state when a player plays agame by utilizing the controller 22. It should be noted that the same istrue for a case that another application is executed as well as a gameplaying. As shown in FIG. 6, when playing the game by means of thecontroller 22 in the video game system 10, the player holds thecontroller 22 with one hand. Strictly speaking, the player holds thecontroller 22 in a state that the front end surface (the side of theincident light opening 22 d of the light imaged by the imagedinformation arithmetic section 80) of the controller 22 is oriented tothe markers 340 m and 340 n. It should be noted that as can beunderstood from FIG. 1, the markers 340 m and 340 n are placed inparallel with the horizontal direction of the screen of the monitor 34.In this state, the player performs a game operation by changing aposition on the screen indicated by the controller 22, and changing adistance between the controller 22 and each of the markers 340 m and 340n.

Noted that although it is difficult to understand in FIG. 6, this istrue even if the above-described gyro unit 24 is connected to thecontroller 22.

FIG. 7 is a view showing viewing angles between the respective markers340 m and 340 n, and the controller 22. As shown in FIG. 7, each of themarkers 340 m and 340 n emits infrared ray within a range of a viewingangle θ1. Also, the imager 80 c of the imaged information arithmeticsection 80 can receive incident light within the range of the viewingangle θ2 taking the line of sight of the controller 22 as a center. Forexample, the viewing angle θ1 of each of the markers 340 m and 340 n is34° (half-value angle) while the viewing angle θ2 of the imager 80 c is41°. The player holds the controller 22 such that the imager 80 c isdirected and positioned so as to receive the infrared rays from themarkers 340 m and 340 n. More specifically, the player holds thecontroller 22 such that at least one of the markers 340 m and 340 nexists in the viewing angle θ2 of the imager 80 c, and the controller 22exists in at least one of the viewing angles θ1 of the marker 340 m or340 n. In this state, the controller 22 can detect at least one of themarkers 340 m and 340 n. The player can perform a game operation bychanging the position and the attitude of the controller 22 in the rangesatisfying the state.

If the position and the attitude of the controller 22 are out of therange, the game operation based on the position and the attitude of thecontroller 22 cannot be performed. Hereafter, the above-described rangeis called an “operable range”.

If the controller 22 is held within the operable range, an image of eachof the markers 340 m and 340 n is imaged by the imaged informationarithmetic section 80. That is, the imaged image obtained by the imager80 c includes an image (object image) of each of the markers 340 m and340 n as an object to be imaged. FIG. 8 is an illustrative view showingone example of the imaged image including the object images. The imageprocessing circuit 80 d calculates coordinates (marker coordinates)indicative of the position of each of the markers 340 m and 340 n in theimaged image by utilizing the image data of the imaged image includingthe object images.

Since the object image appears as a high-intensity part in the imagedata of the imaged image, the image processing circuit 80 d firstdetects the high-intensity part as a candidate of the object image.Next, the image processing circuit 80d determines whether or not thehigh-intensity part is the object image on the basis of the size of thedetected high-intensity part. The imaged image may include images otherthan the object image due to sunlight through a window and light of afluorescent lamp in the room as well as the images 340 m′ and 340 n′corresponding to the two markers 340 m and 340 n as an object image. Thedetermination processing whether or not the high-intensity part is anobject image is executed for discriminating the images 340 m′ and 340 n′as an object image from the images other than them, and accuratelydetecting the object image. More specifically, in the determinationprocess, it is determined whether or not the detected high-intensitypart is within the size of the preset predetermined range. Then, if thehigh-intensity part is within the size of the predetermined range, it isdetermined that the high-intensity part represents the object image. Onthe contrary, if the high-intensity part is not within the size of thepredetermined range, it is determined that the high-intensity partrepresents the images other than the object image.

In addition, as to the high-intensity part which is determined torepresent the object image as a result of the above-describeddetermination processing, the image processing circuit 80 d calculatesthe position of the high-intensity part. More specifically, thebarycenter position of the high-intensity part is calculated. Here, thecoordinates of the barycenter position is called a “marker coordinate”.Also, the barycenter position can be calculated with more detailed scalethan the resolution of the imager 80 c. Now, the resolution of theimaged image imaged by the imager 80 c shall be 126×96, and thebarycenter position shall be calculated with the scale of 1024×768. Thatis, the marker coordinate is represented by the integer from (0, 0) to(1024, 768).

Additionally, the position in the imaged image shall be represented by acoordinate system (XY coordinate system) taking the upper left of theimaged image as an origin point, the downward direction as an Y-axispositive direction, and the right direction as an X-axis positivedirection.

Also, if the object image is properly detected, two high-intensity partsare determined as object images by the determination process, andtherefore, two marker coordinates are calculated. The image processingcircuit 80 d outputs data indicative of the calculated two markercoordinates. The data of the output marker coordinates (markercoordinate data) is included in the input data by the processor 70 asdescribed above, and transmitted to the game apparatus 12,

The game apparatus 12 (CPU 40) detects the marker coordinate data fromthe received input data to thereby calculate an instructed position(instructed coordinate) by the controller 22 on the screen of themonitor 34 and a distances from the controller 22 to each of the markers340 m and 340 n on the basis of the marker coordinate data. Morespecifically, from the position of the mid point of the two markercoordinates, a position to which the controller 22 faces, that is, aninstructed position is calculated. The distance between the objectimages in the imaged image is changed depending on the distance betweenthe controller 22 and each of the markers 340 m and 340 n, andtherefore, the game apparatus 12 can grasp the distance between thecontroller 22 and each of the markers 340 m and 340 n by calculating thedistance between the two marker coordinates.

One example of a virtual game utilizing such a game system 10 will beexplained with reference to the drawings. In this embodiment, thevirtual game is to compete scores by moving a moving object such as aflying disk in a virtual space in accordance with an operation by aplayer, and making a non player object such as a dog catch the movingobject. Here, depending on the way of moving the moving object, the nonplayer object can catch the moving object or cannot catch it, or thescore is changed depending on the position where the moving object iscaught.

Additionally, if the moving object cannot be caught, or if the movingobject can be caught but the position where the moving object is caughtis outside the range set in advance, the score is not added.

FIG. 9 is an illustrative view showing one example of a game screen 100of the above-described virtual game. On the game screen 100 shown inFIG. 9, a dog (non player object) 102 is shown at substantially thecenter, and this non player object 102 holds the flying disk (movingobject) 104 in its mouth. Furthermore, in front of the non player object102 and the moving object 104, a display area 106 of dotted frame isplaced for displaying a message of informing a player or a player object(see FIG. 10) of receiving the moving object 104. In addition,diagonally upward left of the non player object 102, a target object 108having an arrow shape being a target for which the moving object 104 isthrown (moved) is shown. In addition, at the tight lower part of thegame screen 100, a total score is shown.

In this embodiment, when the message is shown on the monitor 34, andthen a predetermined button (A button 26 d, for example) is pushed(turned on) with an instruction image such as a mouse pointer not shownmoved over the display area 106 by an operation of the controller 22, aplayer object 110 (see FIG. 10) described later receives the movingobject 104 from the non player object 102.

The reason why the moving object 104 is received from the non playerobject 102 is for inducing the player holding the controller 22connected with the gyro unit 24 to be opposed to the monitor 34, andinducing a position and a direction (attitude) of the controller 22 inthe actual space when a throwing action of the moving object 104 isstarted to take a desired position and a desired orientation. Although adetailed explanation is omitted, the position and the attitude of thecontroller 22 at this time are decided as a reference position and areference attitude, and from then on, the position of the moving object104 within the three-dimensional virtual space is calculated on thebasis of the amount of displacement from the reference position, and theorientation of the moving object 104 within the three-dimensionalvirtual space is calculated on the basis of alteration from thereference orientation until an operation of receiving the moving object104 from the non player object 102 is executed next.

Here, in a case that a person actually throws a flying disk, the personopposes to the target, and then twists his or her body from the front tothe right or left such that the hand or the arm holding the flying diskis wound around the body, and returns his or her body to the front withthe hand or arm extended from this state. Thus, in the virtual game ofthis embodiment a message for inducing a player before performing athrowing action of the flying disk (moving object) 104 to oppose to thetarget object 108, i.e., the monitor 34 (marker unit 34 b) is displayed,and in response to the player clicking it, the moving object 104 isreceived. More specifically, the player is induced to turn the lightincident opening 22 d of the controller 22 that he or she holds to themonitor 34 (marker unit 34 b).

Noted, in a case of generally throwing a flying disk with the righthand, the person twists his or her body to the left direction while in acase of throwing the flying disk with the left hand, the person twistshis or her body to the right direction.

Furthermore, in this embodiment, as described later, the top surface ofthe controller 22 corresponds to the top surface of the moving object104, and the attitude (inclination) of the controller 22 is representedas an orientation (inclination) of the moving object 104.

FIG. 10 is an illustrative view showing an example of another gamescreen 150. On the game screen 150 shown in FIG. 10, the player object110 is shown at the lower center of the screen. Furthermore, the playerobject 110 is in a state that it twists its body to the left in order tothrow the moving object 104. Although illustration is omitted, theplayer holding the controller 22 connected with the gyro unit 24performs an operation in the same manner. In addition, the target object108 is shown ahead of the player object 110 and at substantially thecenter of the game screen 150. Moreover, the non player object 102 is ina state of waiting the start of the movement of the moving object 104 onthe right of the player object 110 in order to follow the moving object104.

FIG. 11 is an illustrative view showing an example of another gamescreen 200. FIG. 11 shows the game screen 200 representing a scenedirectly after the player object 110 throws the moving object 104. Onthe game screen 200, the player object 110 is displayed at substantiallythe lower center, and the target object 108 is displayed so as to becovered with the player object 110. Additionally, the non player object102 is displayed on the right of the player object 110, and in a statethat it starts to follow the moving object 104. Here, in FIG. 11, sincethe moving object 104 and the player object 110 are overlapped with eachother, and the player object 110 is shown above (toward the player), themoving object 104 cannot be viewed. Accordingly, by representing theplayer object 110 translucently or with the outline of the dotted lineonly, the moving object 104 may be displayed to be viewed, for example.

Although illustration is omitted, when the player swings his or her handor arm with the controller 22 connected with the gyro unit 24 held as ifhe or she actually throws the flying disk, and the change of the angularvelocity indicated by the gyro data satisfies a predetermined condition,the moving object 104 within the virtual game space starts to move (fly)as described later.

Although described in detail later, in a case that the moving object 104moves (flies), various forces, such as gravity set within the virtualspace, lift caused by rotations of the moving object 104, air resistancecaused by tilts of the moving object 104, etc. work, and therefore, theposition and the orientation (inclination) of the moving object 104 arecalculated for each interval. Here, the initial velocity to the movingdirection of the moving object 104 and the initial velocity of therotation thereof are detected on the basis of the accelerations detectedby the controller 22. The detail is described later.

FIG. 12 is an illustrative view showing an example of still another gamescreen 250. FIG. 12 shows a scene that the moving object 104 thrown bythe player object 110 moves close to the target object 108, and the nonplayer object 102 tries to catch the moving object 104. Morespecifically, on the game screen 250 shown in FIG. 12, the target object108 is shown at substantially the center, and the moving object 104 isshown at the diagonally downward right from it. In addition, at thelower side of the target object 108, the non player object 102 is shown.

FIG. 13 is an illustrative view showing an example of another gamescreen 300. FIG. 13 shows a scene directly after the non player object102 catches the moving object 104 which the player object 110 hasthrown. More specifically, on the game screen 300 shown in FIG. 13, thetarget object 108 is shown to the left from the center, and the nonplayer object 102 holding the moving object 104 in its mouse is shown tothe right from the center. Furthermore, at substantially the center ofthe game screen 300, a marker 112 indicating the position where the nonplayer object 102 catches the moving object 104 is shown.

FIG. 14 is an illustrative view showing an example of a further anothergame screen 350. FIG. 14 shows a scene that a point (score) with respectto the current try is decided. More specifically, the target object 108is displayed at substantially the center of the game screen 350, and acircular scoring area 114 centered about the target object 108 isdisplayed. The scoring area 114 is segmented to three areas, and acircular area 114 a including the target object 108 and donut-shapedareas 114 b, 114 c centered about it are provided. The score is set tolow as the position where the non player object 102 catches the movingobject 104 is far away from the target object 108. In this embodiment,out of the three areas of the scoring area 114, 100 points is assignedto the area 114 a including the target object 108, 50 points is assignedto the donut-shaped area 114 b adjacent to the area 114 a, and 10 pointsis assigned to the donut-shaped area 114 c adjacent to the area 114 b.In FIG. 14 example, the marker 112 is shown within the area 114 a, thisshows that the current point (score) is 100 points.

Here, in a case that the position where the non player object 102catches the moving object 104 is outside the scoring area 114, no pointis added. Although illustration is omitted, a circular or quadranglearea (judging area) slightly larger than the scoring area 114 is set,and in a case that the moving object 104 falls (lands) except for thejudging area, the non player object 102 does not catch the moving object104. That is, the non player object 102 stops following the movingobject 104 in the middle, or it moves to the target object 108 withoutfollowing the moving object 104.

Furthermore, when the moving object 104 is thrown by predeterminednumber of times (10 times, for example), the game playing is to beended. The total scores with respect to these tries by the predeterminednumber of times is competed with that of another player, or is comparedwith the player's own total score until the last time.

FIG. 15 is an illustrative view showing a memory map of the internalmain memory 42 e or the external main memory 46 shown in FIG. 2. Asshown in FIG. 15, the main memory (42 e, 46) includes a program memoryarea 500 and a data memory area 502. The concrete contents of the datamemory area 502 is shown in FIG. 16. The program memory area 500 storesa game program, and the game program is made up of a game mainprocessing program 500 a, an image generating program 500 b, an imagedisplaying program 500 c, an angular velocity detecting program 500 d,an acceleration detecting program 500 e, a disk position decidingprogram 500 f, a disk orientation deciding program 500 g, a diskthrowing determining program. 500 h, a throwing simulation program 500i, a throwing executing program 500 j, a course simulation program 500k, a movement executing program 500 m, etc.

The game main processing program 500 a is a program for processing amain routine of the virtual game of this embodiment. The imagegenerating program 500 b is a program for generating a game image todisplay a game screen (100, 150, 200, 250, 300, 350, etc.) on themonitor 34 by using image data 502 a (see FIG. 16) described later. Theimage displaying program 500 c is a program for displaying the gameimage generated according to the image generating program 500 b on themonitor 34 as a game screen (100, 150, 200, 250, 300, 350, etc.).

The angular velocity detecting program 500 d is a program for detectingangular velocity data relative to an angular velocity detected by thegyro sensor 92. As described above, the angular velocity data isincluded in the input data from the controller 22, and thus, the CPU 40detects the angular velocity data included in the input data from thecontroller 22 according to the angular velocity detecting program 500 d.

The acceleration detecting program 500 e is a program for detectingacceleration data relative to an acceleration detected by theacceleration sensor 74. As described above, the acceleration data isincluded in the input data from the controller 22, and thus, the CPU 40detects the acceleration data included in the input data from thecontroller 22 according to the acceleration detecting program 500 e.

The disk position deciding program 500 f is a program for deciding aposition of the moving object 104 within the three-dimensional virtualspace. Before the player object 110 throws the moving object 104, theposition of the moving object 104 is decided together with the motion ofthe hand and arm of the player object 110 depending on the angularvelocity (yaw angle and pitch angle) detected according to the angularvelocity detecting program 500 d by taking the position of the movingobject 104 when the moving object 104 is received from the non playerobject 102 as a reference.

The disk orientation deciding program 500 g is a program for deciding anorientation of the moving object 104 within the three-dimensionalvirtual space. Before the player object 110 throws the moving object104, the orientation of the moving object 104 depending on the angularvelocity detected by the angular velocity detecting program 500 d isdecided. Furthermore, after the player object 110 throws the movingobject 104, an orientation corresponding to the position of the movingobject 104 changed according to the above-described calculation ofphysics is decided. Thus, the orientation of the moving object 104, thatis, the tilt of the top surface of the moving object 104 is alsocalculated for each frame (frame is a screen updating rate: 1/60(seconds)). Here, in this embodiment, the moving object 104 is a flyingdisk, and a rotational force about the axis perpendicular to the flyingdisk is only applied, and thus, the orientation of the moving object 104after it is thrown is scarcely changed. However, if the moving object104 falls onto the ground or is caught by the non player object 102, theorientation is changed.

As shown in FIG. 17(A), the moving object 104 sets a central point nearthe breast of the player object 110, and moves on a sphere with a radiusR decided depending on the length of the arm of the player object 110,the size of the moving object 104, etc. That is, the line segment(length R) connecting the central point of the sphere and the movingobject 104 (central point thereof) is changed depending on the angularvelocity (yaw angle and pitch angle) to be detected by the gyro sensor92. Here, the line segment connecting the reference position and thecenter of the sphere is the line segment as a reference, and the angleformed with this line segment of the reference is decided on the basisof the yaw angle and the pitch angle. In this embodiment, as shown inFIG. 17(B), an angle α in a vertical direction is decided on the basisof the pitch angle of the angular velocity detected by the gyro sensor92. Furthermore, as shown in FIG. 18(A), an angle β in a horizontaldirection is decided on the basis of the yaw angle of the angularvelocity detected by the gyro sensor 92. Here, each of the angle α andthe angle β is an angle formed with the line segment of the reference.

Here, as shown in FIG. 17(B), in this embodiment, with respect to theangle α in the vertical direction based on the pitch angle, angles of45° up and down in relation to the horizontal direction are maximumvalues by taking the central point of the sphere as a center. This isbecause a case that the moving object 104 cannot move to the targetobject 108 is ruled out before the moving object 104 is thrown, and anunconventional image in which the moving object 104 is stuck to the heador the leg of the player object 110 is prevented to be displayed.Similarly, as shown in FIG. 18(A), in this embodiment, with respect tothe angle β in the horizontal direction based on the yaw angle, anglesof 120° from left to right in relation to the moving direction of themoving object 104 are maximum values by taking the central point of thesphere as a center. This is the values decided in view of angles atwhich the person twists his or her body when the person actually throwsa flying disk.

Each of FIG. 17(A) and FIG. 17(B) shows one example of the drawing whenseeing, from rear (back surface) of the player object 110, the playerobject 110 holding the moving object 104 in the right hand twisting itsupper body to the left. FIG. 18(A) shows a drawing (top view) whenseeing the player object 110 from above, and it shows that the playerobject 110 twists the upper body to the left similar to FIG. 17(A) andFIG. 17(B).

Furthermore, after the player object 110 throws the moving object 104,the position and the orientation of the moving object 104 are decided onthe basis of the initial velocity to the moving direction of the movingobject 104 calculated when the moving object 104 is thrown, the gravity,the air resistance, and the lift. That is, the general calculation ofphysics is performed. Here, the moving direction of the moving object104 is decided by the orientation (inclination) of the moving object 104which is decided by the roll angle and the pitch angle of the controller22 when it is determined that the player object 110 throws the movingobject 104. Here, the orientation of the moving object 104 means theinclination with respect to the moving direction in the right and leftdirections and forward and backward directions.

Next, the orientation of the moving object is explained in detail.Before the player object 110 holds the moving object 104 and throws it,the orientation of the moving object 104 is changed according to themovement of the arm of the player object 110.

Here, as described above, the position of the moving object 104 is alsochanged according to the movement of the arm of the player object 110.

First, when in the state in FIG. 17(B), the player object 110 moves thearm holding the moving object 104 up and down, for example, the surfaceof the moving object 104 with respect to the horizontal plane isinclined according thereto. More specifically, the orientation of themoving object 104 when the player object 110 receives the moving object104 from the non player object 102 shall be the state that the topsurface and the horizontal plane are parallel with each other, and bytaking this state as a reference orientation, the orientation of themoving object 104 is changed according to the pitch angle. That is, whenthe arm of the player object 110 moves along the sphere with the radiusR, the player object 110 remains to catch the moving object 104, so thatthe orientation of the moving object 104 is changed according to thismovement. Accordingly, when the player object 110 moves the arm up, thetop surface of the moving object 104 is changed in orientation such thatit turns to the side of the head of the player object 110, and on thecontrary thereto, when the player object 110 moves the arm down, thebottom surface of the moving object 104 is changed in orientation suchthat it turns to the side of the foot of the player object 110. That is,the player object 110 moves the arm up and down according to the pitchangle, and this changes the orientation of the moving object 104.

Furthermore, when the player object 110 rotates the wrist of the armholding the moving object 104 in the state in FIG. 17(B), theinclination (orientation) of the moving object 104 is changed about theaxis in the longitudinal (lengthwise) direction of the arm. That is, asshown in FIG. 18(B), the player object 110 rotates the wrist by therotation angle γ according to the roll angle, to thereby change theorientation of the moving object 104.

It should be noted that FIG. 18(B) is a drawing (side view) when seeingthe player object 110 shown in FIG. 17(A) and FIG. 17(B) from a side.

Although detailed explanation is omitted, after the player object 110throws the moving object 104, the orientation of the moving object 104during moving scarcely changes as described above.

Furthermore, an initial velocity v, to the moving direction of themoving object 104 shown in FIG. 19(A) is calculated (decided) on thebasis of the acceleration detected by the acceleration sensor 74 of thecontroller 22 when it is determined that the player object 110 throwsthe moving object 104. More specifically, as shown in FIG. 17(A), FIG.17(B) and FIG. 18(A), the moving direction is decided to be a tangentialdirection on the sphere with the radius R taking the part of the breastof the player object 110 as a center, and the magnitude of the movingvelocity is decided to be square of the magnitude of the resultantvector combining the three-axis acceleration vectors (ax, ay, az).

Noted that in this embodiment, the initial velocity of the moving object104 is decided on the basis of the acceleration detected by theacceleration sensor 74 of the controller 22, but it is not restrictedthereto. This can be decided on the basis of the angular velocitydetected by the gyro sensor 92.

For example, the initial velocity is calculated by multiplying themagnitude of the resultant vector between the vector of the angularvelocity in the yaw angle direction and the vector obtained bymultiplying the angular velocity in the pitch angle direction by 0.65times, by a predetermined coefficient.

Furthermore, according to another example, the initial velocity iscalculated by multiplying the magnitude of the resultant vector amongthe vector of the angular velocity in the yaw angle direction, thevector obtained by multiplying the magnitude of the angular velocity inthe pitch angle direction by 0.65 times, and the vector obtained bymultiplying the angular velocity in the role angle direction by 0.3times, by a predetermined coefficient.

It should be noted that the predetermined coefficient is a numericalvalue for making the numerical value of the magnitude (2.6-4.5) of theresultant vector calculated by any one of the above-described processesfall within the numerical values (0.01625 m/f-0.0235 m/f) useable forthe game processing. Here, m means a meter, and f means a frame.

In addition, the initial velocity v_(b) of the rotational velocity ofthe moving object 104 shown in FIG. 19(A) is calculated (set) to a value(k(k≦1) times, for example) in proportion to the initial velocity v_(a)toward the moving direction of the moving object 104. Here, in a casethat the player object 110 twists the body to the left and then throwsthe moving object 104, the rotation direction of the moving object 104is a right direction (clockwise), and in a case that the player object110 twists the body to the right and then throws the moving object 104,it is a left direction (counterclockwise).

Although illustration is omitted, at the beginning of the moving object104 being thrown, the moving object 104 starts to move, keeping theorientation (inclination) of the moving object 104 directly before it isthrown. That is, the direction of the top surface of the moving object104 is decided.

Thereafter, forces, such as gravity, air resistance, lift, etc. areworked on the moving object 104, and exert an influence on the movingcourse of the thrown moving object 104. First, as a force worked in ahorizontal direction of the moving object 104, air resistance isenumerated. As shown in FIG. 19(B) and FIG. 19(C), the air resistance isdecided depending on the size of the area of the figure of the topsurface (or lower surface) formed in the vertical plane when seen fromthe side of the moving direction of the moving object 104. Morespecifically, in the example shown in FIG. 19(B), the moving object 104is tilted by angle p forwardly to the moving direction, and the topsurface of the moving object 104 is subject to the air resistance. Themagnitude of the air resistance is decided on the basis of the oval areashown in FIG. 19(C).

Next, there are gravity and lift as forces which work in a verticaldirection of the moving object 104. As shown in FIG. 20(A), the gravityis a force based on the gravitational acceleration set within thethree-dimensional virtual space, and works in a vertically below as tothe moving object 104. Furthermore, as shown in FIG. 20(B), the lift,which is a force occurring by rotating the moving object 104 and formaking the moving object 104 float up, is in parallel with the rotationaxis of the moving object 104, and works in a direction from the bottomsurface of the moving object 104 to the top surface thereof.Accordingly, in a case that the moving object 104 is inclined relativeto the moving direction, the moving object 104 moves so as to turn tothe inclined side.

Although illustration is omitted, when the moving object 104 moves justabove the ground, the lift may occur due to the buildup of the pressure(ground effect) with the ground in addition to the rotation. In such acase, lift due to the ground effect also works, and therefore, themoving object 104 moves as if it hops. The same thing happens if themoving object 104 moves just above the water, for example, and in such acase, lift due to a water surface effect occurs.

Returning to FIG. 15, the disk throwing determining program 500 h is aprogram for determining whether or not the flying disk, that is, themoving object 104 is to be thrown. In this embodiment, the angularvelocity data detected according to the angular velocity detectingprogram 500 d is data relative to a predetermined number of angularvelocities (20, for example), and an extreme is detected on the basis ofthe predetermined number of angular velocities, and if the extreme isless than a predetermined value (threshold value), it is determined thatthere is an operation of throwing the moving object 104. However, if theextreme cannot be detected on the basis of the predetermined number ofangular velocities or if the detected extreme is equal to or more thanthe threshold value, it is determined there is no operation of throwingthe moving object 104.

The reason why the extreme of the change of the angular velocity isrequired to determine whether or not the moving object 104 is to bethrown is that the player object 110 (player) twists the body to rightor left as described above once when throwing the moving object 104.

Here, in this embodiment, whether or not the moving object 104 is thrownis determined when an extreme is calculated by using the predeterminednumber of angular velocities, and if the calculated extreme is below thepredetermined threshold value, but it is not restricted thereto. Forexample, if the angular velocity is below the predetermined thresholdvalue, it may be determined that the moving object 104 is thrown. Insuch a case, the angular velocity is not required to be stored by thepredetermined number.

The throwing simulation program 500 i is a program for simulating themoving course of the moving object 104 when it is determined that theplayer object 110 throws the moving object 104. For example, theposition of the moving object 104 (three-dimensional coordinate) foreach frame is evaluated by calculation of physics as described above.Furthermore, the orientation of the moving object 104 corresponding tothe position evaluated by the calculation of physics is decided. This isbecause the non player object 102 is moved so as to follow the movingobject 104.

The throwing executing program 500 j is a program for calculating themoving course of the moving object 104 in a case that it is determinedthe player object 110 throws the moving object 104, and movinglydisplaying the moving object 104 according thereto. This throwingexecuting program 500 j is substantially the same as the throwingsimulation program 500 i, but it draws the moving object 104 at theorientation decided for each frame at the three-dimensional positioncalculated for each frame. Accordingly, a scene in which the movingobject 104 moves (flies) is displayed on the monitor 34 as a gamescreen.

The course simulation program 500 k is a program for simulating theroute that the non player object 102 moves. In this embodiment, asdescribed above, the non player object 102 moves so as to follow themoving object 104. However, if the moving object 104 is greatlydisplaced from the scoring area 114, the non player object 102 does notfollow the moving object 104, and in such a case, the route is decidedin the following manner.

The non player object 102 moves a distance to a certain extent so as tosubstantially go straight ahead the target object 108, and then moves tofollow the current position of the moving object 104. For example, whenthe non player object 102 goes a distance to a certain extent, anarbitrary Bezier curve connecting two points of the current position ofthe moving object 104 and a position where the moving object 104 fallscalculated according to the throwing simulation program 500 i iscalculated. Then, a position (three-dimensional coordinate) for eachframe is calculated so as to move the non player object 102 on thecalculated Bezier curve.

The movement executing program 500 m is a program for updating thethree-dimensional position such that the non player object 102 moves onthe route calculated according to the course simulation program 500 k,and drawing the non player object 102 at the updated three-dimensionalposition. Here, since it is constructed to follow the moving object 104,and catch the moving object 104, the course calculated according to thecourse simulation program 500 k is evenly divided by the number offrames just before the moving object 104 falls onto the ground tothereby decide a three-dimensional position for each frame. Furthermore,the movement executing program 500 m generates a game image such thatthe non player object 102 catches the moving object 104 at a positionwhere the non player object 102 and the moving object 104 are overlappedwith each other. Here, in this embodiment, since the dog as a non playerobject 102 catches the flying disk as a moving object 104 in the mouth,the non player object 102 and the moving object 104 are overlapped witheach other just before the moving object 104 falls onto the ground asdescribed above.

Furthermore, in this embodiment, in order to represent the try beingunsuccessful, in a case that the position where the moving object 104falls is outside the scoring area 114, even if the non player object 102follows close to the moving object 104, the moving object 104 does notcatch it. However, this is one example, and even in such a case, the nonplayer object 102 may catch the moving object 104.

Although illustration is omitted, the game program also includes a soundoutput program, a backup program, etc. The sound output program is aprogram for outputting sound necessary for the game, such as music(BGM), a voice or an onomatopoeic sound of an object, a sound effect,and the like by utilizing sound (music) data. The backup program is aprogram for saving (storing) game data (proceeding data, result data) inthe memory card.

In addition, as shown in FIG. 16, the data memory area 502 stores imagedata 502 a, angular velocity data 502 b, acceleration data 502 c,non-player object data 502 d and moving object data 502 e. Furthermore,to the data memory area 502, a timer 502 f and a throwing determiningflag 502 g are provided.

The image data 502 a is image data for generating a game image, andincludes polygon data, texture data, etc. The angular velocity data 502b is angular velocity data detected according to the angular velocitydetecting program 500 d. As described above, since whether or not thenon player object 102 throws the moving object 104 is determined on thebasis of the angular velocity data 502 b, data relative to at leastpredetermined number of angular velocities (20, for example) aretemporarily stored in the data memory area 502. Here, in thisembodiment, three or four angular velocity data are detected for eachframe. The acceleration data 502 c is acceleration data detectedaccording to the acceleration detecting program 500 c.

The non-player object data 502 d is data relative to the non playerobject 102, and includes simulation position data 5020 and currentposition data 5022. The simulation position data 5020 isthree-dimensional coordinate data relative to the non player object 102for each frame calculated according to the course simulation program500k. Furthermore, the current position data 5022 is three-dimensionalcoordinate data relative to the current frame of the non player object102.

The moving object data 502 e is data relative to the moving object 104,and includes simulation position data 5030, current position data 5032,orientation data 5034 and physical quantity data 5036. The simulationposition data 5030 is three-dimensional coordinate data of the movingobject 104 for each frame calculated according to the throwingsimulation program 500 i. The current position data 5032 isthree-dimensional coordinate data of the moving object 104 at thecurrent frame. The orientation data 5034 is data relative to theorientation (inclination) of the moving object 106 at the current frame.The physical quantity data 5036 is data relative to gravity, airresistance, lift by rotations and lift by a planar effect which areworked on the moving object 104 at the current frame.

The timer 502 f is a timer for counting a time taken from when themoving object 104 is thrown to the time when it falls. This timer 502 fis reset (count value=0) and started when the moving object 104 isthrown, adding one to the count value for each frame.

The throwing determining flag 502 g is a flag for determining whether ornot the player object 110 is to throw the moving object 104, and formedby one bit register, for example, when the throwing determining flag 502g is turned on (established), a data value “1” is set to the register,and when the throwing determining flag 502 g is turned off (notestablished), a data value “0” is set to the register. Here, the turningon and off the throwing determining flag 502 g is executed according tothe disk throwing determining program 500 h. More specifically, in acase that it is determined that the player object 110 throws the movingobject 104, the throwing determining flag 502 g is turned on while if itis determined that the player object 110 does not throw the movingobject 104, the throwing determining flag 502 g is turned off.

Although illustration is omitted, in the data memory area 502, otherdata such as sound data, score data, etc., are stored, and other timers(counters) and other flags necessary for the game are also provided.

More specifically, the CPU 40 shown in FIG. 2 executes entire processingshown in FIG. 21 and FIG. 22. As shown in FIG. 21, when starting theentire processing, the CPU 40 executes initialization processing in astep S1. Here, the CPU 40 generates a game image to display the gamescreen 100 shown in FIG. 9, clears the angular velocity data 502 b andacceleration data 502 c, and so forth.

In a next step S3, it is determined whether or not a switch on thescreen is pushed by the pointing device. The CPU 40 determines whetheror not the player moves an instruction image and clicks the display area106 of the game screen 100 by utilizing the controller 22. The reasonwhy such processing is executed is for that the position and attitude ofthe controller 22 in the real space are set to a desired position and adesired attitude, and the position and orientation of the moving object104 in the three-dimensional virtual space are set to a desired positionand a desired orientation as described above. That is, theinitialization of the position and orientation of the moving object 104in the three-dimensional virtual space is performed.

If “NO” in the step S3, that is, if the switch on the screen is notturned on by the pointing device, the process returns to the same stepS3. On the other hand, if “YES” in the step S3, that is, if the switchon the screen is turned on with the pointing device, angular velocitydata is acquired from the gyro sensor 92 in a step S5. That is, the CPU40 detects angular velocity data included in the input data from thecontroller 22.

In a succeeding step S7, correction processing with the pointing deviceis executed. Briefly speaking, the images of the respective markers 340m and 340 n are imaged by the imaged information arithmetic section 80as described above. The image processing circuit 80 d calculates markercoordinates indicating the positions of the images 340 m′ and 340 n′ ofthe markers 340 m and 340 n in the entire imaged image. Although omittedin the above description, the image processing circuit 80 d applies theimaged image data and the marker coordinate data to the processor 70.Accordingly, the input data further includes imaged image data. Then,the CPU 40 determines the attitude (status within the three-dimensionalvirtual space) of the controller 22 that the player holds from themarker coordinates of the images 340 m′, 340 n′ and the positionalrelationship between the images 340 m′, 340 n′, and corrects the angularvelocity data detected from the gyro sensor 92 if there is adisplacement with the attitude of the controller 22 determined on thebasis of the angular velocity data from the gyro sensor 92. Morespecifically, the yaw angle is corrected based on the marker coordinates(positions) of the images 340 m′, 340 n′, and the roll angle iscorrected from the positional relationship with the images 340 m′, 340n′.

In a next step S9, correction processing by the acceleration sensor 74is executed. Briefly explained, the attitude of the controller 22 isdetermined on the basis of the acceleration data from the accelerationsensor 74, and corrects the angular velocity data detected by the gyrosensor 92 when there is a displacement with the attitude of thecontroller 22 determined on the basis of the angular velocity data fromthe gyro sensor 92. Here, in a case that a game operation is performedwith utilizing the controller 22, the accelerations except for thegravitational acceleration are added. As the magnitude of theacceleration indicated by the acceleration data detected by theacceleration sensor 74 is close to the magnitude of the gravitationalacceleration, the direction of the acceleration indicated by theacceleration data is more corrected to the direction of thegravitational acceleration. As it is far away from the magnitude of thegravitational acceleration, the direction of the acceleration indicatedby the acceleration data is less corrected, and if it is far away fromthe magnitude of gravitational acceleration above a predeterminedmagnitude, no correction is made.

Successively, in a step S11 zero-point correcting processing isexecuted. Here, a displacement of the zero point on the basis of thetemperature drift of the gyro sensor 92 is corrected. For example, whenit is found that the controller 22 is static on the basis of theacceleration data from the acceleration sensor 74, in a case that thecontroller 22 moves by the angular velocity data from the gyro sensor92, it is possible to determine that a displacement occurs at the zeropoint. More specifically, in a case that the controller 22 is static inthe horizontal state, an acceleration vertically below the z axis whichis the same or approximately the same in magnitude as the gravitationalacceleration is detected. That is, in a case that an acceleration thesame or approximately the same in magnitude as the gravitationalacceleration is detected on the basis of the acceleration data, it ispossible to determine that the controller 22 is static. When it isdetermined that a displacement occurs at the zero point, a correction isperformed such that the angular velocity data at the current timeapproaches zero.

In a next step S13, the data from the gyro is accumulated in the buffer.That is, the CPU 40 sequentially stores (temporarily stores) the angularvelocity data acquired in the step S5 in the data memory area 502. Here,in a case that the correcting processing is performed in the steps S7,S9, S11, the corrected angular velocity data is stored. In a succeedingstep S15, the position and orientation of the flying disk, that is, themoving object 104 are decided. That is, the current three-dimensionalposition is decided (calculated) according to the yaw angle and pitchangle which are indicated by the angular velocity data from the gyrosensor 92 so as to move on the sphere with the radius R by taking thethree-dimensional position of the moving object 104 at a time when themoving object 104 is received from the non player object 102 as areference.

Furthermore, the orientation (inclination) of the moving object 104 isalso decided according to the roll angle, yaw angle and pitch anglewhich are indicated by the angular velocity data from the gyro sensor92. More specifically, the orientation of the moving object 104 when theplayer object 110 receives the moving object 104 from the non playerobject 102 is a state that the top surface of the moving object 104 anda horizontal level are parallel with each other. When the arm of theplayer object 110 moves along the sphere with the radius R according tothe pitch angle by taking this state as a reference orientation, theposition of the moving object 104 is changed in a state that the playerobject 110 holds the moving object 104. Accordingly, when the playerobject 110 moves the arm up, the orientation is changed such that thetop surface of the moving object 104 turns to the head of the playerobject 110. On the contrary when the player object 110 moves the armdown, the bottom surface of the moving object 104 is changed so as toturn to the foot of the player object 110. That is, moving the arm ofthe player object 110 up and down according to the pitch anglerepresents the change in the orientation of the moving object 104.Furthermore, rotating the wrist of the player object 110 according tothe roll angle represents the change ill the orientation of the movingobject 104.

In a succeeding step S17, the flying disk, that is, the moving object104 is drawn. Here, the moving object 104 is arranged (drawn) at theposition decided in the step S15 at the decided orientation.Successively, in a step S19, throwing determining processing (see FIG.23) described later is executed, and in a step S21, it is determinedwhether or not the throwing determining flag 502 g is turned on. If “NO”in the step S21, that is, if the throwing determining flag 502 g isturned off, the process directly returns to the step S5 to update themotion of the player object 110 and the position and orientation of themoving object 104 that the player object 110 holds on the basis of theangular velocity data from the controller 22. On the other hand, if“YES” in the step S21, that is, if the throwing determining flag 502 gis turned on, the process proceeds to a step S23 shown in FIG. 22.

As shown in FIG. 22, in the step S23, throwing simulation processing(see FIG. 24) described later is executed. That is, a moving course ofthe moving object 104 after the player object 110 throws the movingobject 104 on the basis of the operation by the player is evaluatedaccording to the simulation. Although illustration is omitted, when thethrowing simulation processing is started, the timer 502 f is reset andstarted. In a succeeding step S25, a three-dimensional position wherethe moving object 104 falls or the moving object 104 is caught isacquired, and the time at that time is also acquired. Here, the timemeans a time from when the player object 110 throws the moving object104 to a time when it falls onto the ground or it is caught by the nonplayer object 102.

Here, in this embodiment, in a case that the point where the movingobject 104 falls is within the Judging area, when it is determined thatthe non player object 102 catches the moving object 104.

In a succeeding step S27, course simulation processing is executed. Asdescribed above, in a case that the non player object 102 catches themoving object 104, that is, if the moving object 104 falls within thejudging area, the non player object 102 goes straight ahead the targetobject 108 to a certain extent, and then moves so as to follow themoving object 104. The CPU 40 decides such a moving course, uniformlydivides the decided course with the time (the number of frames) acquiredin the step S25, and acquires a three-dimensional position for eachframe. The data of the three-dimensional position for each frame issimulation position data 5020.

When the course simulation processing is executed, throwing processing(see FIG. 25) described later is executed in a step S29. That is, a gameimage in which the moving object 104 is moved in the three-dimensionalvirtual space is generated to display the same on the game screen (200,250, 300, etc.). In a succeeding step S31, dog behavior processing isexecuted. That is, the CPU 40 moves the non player object 102 accordingto the simulation position data 5020 acquired in the step S27.Furthermore, the CPU 40 animation-displays the non player object 102 soas to catch the moving object 104 at a timing when the moving object 104is to be caught.

Noted that since it is possible to know that the moving object 104 isdropped on is caught in what frame according to the throwing simulationin advance, this can show the time when the moving object 104 is to becaught.

Then, in a step S33, it is determined whether the dog catches the flyingdisk or drops it. That is, it is determined whether the moving object104 is caught by the non player object 102, or the moving object 104falls onto the ground without being caught by the non player object 102and then suspends the movement.

Here, as described later, in this embodiment, when the moving velocityv_(a) of the moving object 104 is 0, or when the moving object 104 hitsthe ground by a predetermined number of times (500 times, for example),it is determined that the moving object 104 falls onto the ground. Here,the hitting determination between the moving object 104 and the groundis performed for each frame.

If “NO” in the step S33, that is, if the dog neither catches nor dropsthe flying disk, the process directly returns to the step S29. On theother hand, if “YES” in the step S33, that is, if the dog catches theflying disk or drops the same, a point display is executed in a stepS35. Here, in a case that the non player object 102 catches the movingobject 104, the point corresponding to the position where the non playerobject 102 catches the moving object 104 (scoring area 114(114 a-114 c))is displayed, and in a case that the non player object 102 does notcatch the moving object 104, 0 point is displayed.

Then, in a step S37, it is determined whether or not 10 times throwingsare made. If “NO” in the step S37, that is, if 10 times throwings havenot been performed, it is determined that a next try is performed, andthe process returns to the step S3 shown in FIG. 21. On the other hand,if “YES” in the step S37, that is, if 10 times throwings have beenperformed, the entire process is directly ended.

FIG. 23 shows a flowchart of the throwing determining processing in thestep S19 shown in FIG. 21. As shown in FIG. 23, when starting thethrowing determining processing, the CPU 40 turns the throwingdetermining flag 502 g off in a step S51. In a next step S53, the totalnumber of the angular velocity data 502 b within the buffer is set in avariable n, and an initial value “0” is set to a minimum value min.Here, the variable n is the number of angular velocity data 502 b storedin the data memory area 502. Furthermore, the minimum value min is aminimum value of the angular velocities of the yaw angle indicated bythe angular velocity data 502 b. Successively, in a step S55, the oldestangular velocity data is read. That is, out of the angular velocity data502 b stored in the data memory area 502, the oldest angular velocitydata 502 b is read. Then, in a step S57, the angular velocity of the yawangle indicated by the read angular velocity data 502 b is set to thevariable data.

In a following step S59, it is determined whether or not the flying diskis on the left side. That is, it is determined whether or not theposition of the moving object 104 decided in the step S 8 5 is on theleft side as seeing the target object 108 from the player object 110.More specifically, it is determined whether or not an angle formedbetween a vector extending from the center of the player object 110 tothe left direction and a vector extending from the center of the playerobject 110 to the center of the moving object 104 is less than 90angles.

If “YES” in the step S59, that is, if the flying disk is on the leftside, the process directly proceeds to a step S63. On the other hand, if“NO” in the step S59, that is, if the flying disk is on the right side,the sign of the variable data is inverted in a step S61, and the processproceeds to the step S63. The reason why the processing in the step S61is executed is that the processing after the step S63 is made equalbetween a case that the flying disk (moving object 104) is on the leftside of the player object 110 and a case that it is on the right sidethereof.

It is determined whether or not the variable data is less than theminimum value min in the step S63. If “NO” in the step S63, that is, ifthe variable data is equal to or more than the minimum value min, theprocess proceeds to a step S73. On the other hand, if “YE S” in the stepS63, that is, if the variable data is less than the minimum value min,the variable data is set to the minimum value min in a step S65, thatis, the minimum value min is updated, and the variable n is decremented(n=n−1) in a step S67. In a next step S69, it is determined whether ornot the variable n is equal to or less than 0. That is, it is determinedwhether or not the processing is performed on all the angular velocitydata stored in the buffer.

If “YES” in the step S69, that is, if the variable n is equal to or lessthan 0, the process returns to the entire process shown in FIG. 21 andFIG. 22. On the other hand, if “NO” in the step S69, that is, if thevariable n is larger than 0, next (next older) angular velocity data 502b is read in a step S71, and the process returns to the step S57.

In addition, in the step S73, it is determined whether or not thevariable data is less than a threshold value. The threshold value, here,is a value for determining whether or not the player performs a throwingoperation of the moving object 104 by utilizing the controller 22 and isempirically obtained by experiments, or the like. If “NO” in the stepS73, that is, if the variable data is equal to or more than thethreshold value, it is determined that this is not a throwing operation,and the process proceeds to the step S67. On the other hand, if “YES” inthe step S73, that is, if the variable data is less than the thresholdvalue, the throwing determining flag 502 g is turned on in a step S75,and the process returns to the entire process.

FIG. 24 is a flowchart showing the throwing simulation processing in thestep S23 shown in FIG. 22. As shown in FIG. 24, when starting thethrowing simulation processing, the CPU 40 makes a correction accordingto the position of the disk in a step S81. When it is determined thatthe moving object 104 is to be thrown by the throwing determiningprocessing, the starting time of the movement of the moving object 104is corrected, or the moving direction is corrected. More specifically,in a case that the moving object 104 is on the back side (opposite tothe target object 108) from the immediately lateral position of theplayer object 110, the starting time of movement is delayed.Furthermore, in a case that the position where the player object 110throws the moving object 104 is on the front side from the immediatelylateral position by a fixed length or more, a first direction of theinitial velocity of the moving velocity v_(a) of the moving object 104is modified such that the moving object 104 starts to move at a presetangle.

In a succeeding step SS3, the initial velocity of the moving velocityv_(a) is set. As described above, the direction of the initial velocityof the moving velocity v_(a) is a tangential direction on the spherewith the radius R, and the magnitude is decided by squaring themagnitude of the resultant vector of the accelerations in the three-axisdirections indicated by the acceleration data which is detected by theacceleration sensor 74. In a succeeding step S85, a direction of theinitial surface is set. That is, a first orientation of the movingobject 104 is set. This is decided according to the angular velocitiesas to the roll angle and pitch angle which are detected by the angularvelocity sensor 92 as described above. Then, in a step S87, an initialrotational velocity v_(b) is set. As described above, the initialrotational velocity v_(b) is a value proportional to the initialvelocity of the moving velocity v_(a).

Then, in a step S89, physical behavior processing (see FIG. 26)described later is executed, and in a step S91, a position and anorientation of the flying disk are decided, and in a step S93, it isdetermined whether or not the flying disk falls. Here, it is determinedwhether or not the moving object 104 hits the ground (land).

If “NO” in the step S93, that is, if it is determined the flying diskdoes not fall, the process returns to the step S89. On the other hand,if “YES” in the step S93, that is, if it is determined that the flyingdisk falls, it is determined whether or not the flying disk is stoppedin a step S95. It is determined whether or not the moving velocity v_(a)of the moving object 104 becomes 0, or whether or not the number of hitsof the moving object 104 against the ground is above predeterminednumber of times (500 times). Here, the number of hits of the movingobject 104 against the ground is counted by the counter not shown.

If “NO” in the step S95, that is, if the flying disk is not stopped, theprocess returns to the step S89. On the other hand, if “YES” in the stepS95, that is, if the flying disk is stopped, the process returns to theentire process shown in FIG. 21 and FIG. 22.

FIG. 25 is a flowchart showing the throwing processing in the step S29shown in FIG. 22. This throwing processing is the same as the throwingsimulation processing shown in FIG. 24 except for that after theposition and orientation of the disk are decided, processing (diskdrawing processing (S113)) of actually drawing the disk (moving object104) is executed, and therefore, a duplicated explanation is omitted.

FIG. 26 is a flowchart of the physical behavior processing in the stepS89 shown in FIG. 24 and in the step S109 in FIG. 25. As shown in FIG.26, when starting the physical behavior processing, the CPU 40 addsgravity in a step S131. That is, gravity vertically below is worked onthe moving object 104 in the three-dimensional virtual space. In asucceeding step S133, lift by rotations is added. That is, a forceproportional to the rotational velocity v_(b) is worked on the movingobject 104 in a direction to which the rotation axis of the movingobject 104 is rotated and in a direction toward the top surface of themoving object 104.

Next, in a step SI 35, air resistance is added. That is, a forceobtained by multiplying a square value of the moving velocity v_(a) by avalue proportional to the area of the moving object 104 when seen fromthe front is worked in an direction opposite to the moving velocityv_(a) of the moving object 104. Then, in a step S137, a lift from theground is added, and then, the process is returned to the throwingsimulation processing shown in FIG. 24 or throwing processing shown inFIG. 25. That is, in the step S137, a force, which is greater as it ishorizontal and closer to the ground, is worked on the moving object 104to a direction normal to the ground (vertical upwards from the ground).For example, lift from the ground is decided depending on the distancebetween the moving object 104 and the ground and the inclination of themoving object 104. Thus, the lift according to the current position andorientation is added to the moving object 104.

According to this embodiment, the positions, the orientations and themotions of the objects within the three-dimensional virtual space can becontrolled according to the attitudes of the controller connected withthe gyro unit and its swinging movement, and therefore, it is possibleto execute various processing with a simple operation.

In this embodiment, although the gyro sensor unit (gyro sensor) isconnected to the controller, the gyro sensor may be included in thecontroller.

Furthermore, in this embodiment, in order to detect the position andattitude of the controller, a gyro sensor is used, but in place of thegyro sensor, a terrestrial magnetism sensor can be used. Alternatively,without the use of such sensors, positions and attitudes of thecontroller may be detected by a motion capturing system. That is, othersensors, if they are intended for detecting positions and attitudes ofthe controller, can be adopted.

In addition, in this embodiment, positions and orientations of themoving object are controlled by the positions and attitudes of thecontroller, but it is no need of being restricted thereto. For example,a position and an orientation of the moving object may be controlled onthe basis of a position on the screen which is instructed with thecontroller (position of an instruction image such as a mouse pointer).This means that by detecting the instructed position with thecontroller, a position and an orientation of the controller areindirectly detected. As to the virtual game in the above-describedembodiment, when the instruction image is moved from the center of thescreen to the left direction (or right direction), the player objectholding the moving object twists the body to the left direction (orright direction). In addition, when the instruction image is moved fromthe center of the screen to the up and down directions, the arm holdingthe moving object is moved up and down. That is, the orientation of themoving object is changed. In such a case, when a moving amount(displacement amount) of the instruction image per a given period oftime is above a certain value, it may be determined that the movingobject is thrown. Here, it is no need of being restricted to thestructure in the embodiment, and an infrared rays LED is provided to thecontroller, an imaged information arithmetic section is provided in thevicinity of (on) the monitor, and the imaged information arithmeticsection may be connected to the game apparatus.

In addition, in this embodiment, by positions and attitudes of thecontroller in the actual space, positions and orientations of the movingobject in the three-dimensional virtual space are controlled, but otherobjects such as a virtual camera in the three-dimensional virtual spacemay be controlled. In a case that the virtual camera is controlled, apan, a tilt, and a roll of the virtual camera are controlled by theattitude of the controller. When the angular velocity detected byswinging the controller in the gyro sensor is above a constant thresholdvalue, the shutter of the virtual camera can be turned on. It should benoted that a zoom operation may be controlled instead of a rolloperation.

Although the present invention has been described and illustrated indetail, it is clearly understood that the same is by way of illustrationand example only and is not to be taken by way of limitation, the spiritand scope of the present invention being limited only by the terms ofthe appended claims.

What is claimed is:
 1. A non-transitory storage medium storing aninformation processing program configured, when executed, to cause acomputer of an information processing apparatus controlling a motion ofan object within a virtual space on the basis of a status signal outputfrom a detector configured to detect a status including at least one ofa position and an attitude of an input device to perform functionalitycomprising at least: control said object such that said object performsa first motion within said virtual space on the basis of said statussignal, determine whether or not information relative to a magnitude ofsaid status signal satisfies a predetermined condition during when saidobject is controlled to perform said first motion within said virtualspace, and control said object such that said object performs a secondmotion different from said first motion within said virtual space on thebasis of said status signal in a case that the information relative to amagnitude of said status signal is determined to satisfy thepredetermined condition.
 2. A non-transitory storage medium storing aninformation processing program according to claim 1, wherein saiddetector includes a gyro sensor, and said status signal is a gyrosignal.
 3. A non-transitory storage medium storing an informationprocessing program according to claim 2, wherein the determination ofwhether or not the information relative to a magnitude of said statussignal satisfies the predetermined condition includes: calculating amagnitude of said gyro signal, and determining whether or not thecalculated magnitude of the gyro signal is above a first predeterminedvalue, and said object is controlled such that said object performs saidsecond motion in a case that the magnitude of said gyro signal isdetermined to be above said first predetermined value.
 4. Anon-transitory storage medium storing an information processing programaccording to claim 3, wherein a moving velocity and a moving directionof said object is controlled on the basis of said gyro signal in a casethat the magnitude of said gyro signal is determined to be above saidfirst predetermined value.
 5. A non-transitory storage medium storing aninformation processing program according to claim 3, wherein said inputdevice further includes an acceleration sensor, said informationprocessing program further causes said computer to perform functionalitycomprising at least: calculate an acceleration signal corresponding toan acceleration occurring to said input device on the basis of an outputfrom said acceleration sensor, control a moving velocity of said objecton the basis of the calculated acceleration signal in a case that themagnitude of said gyro signal is determined to be above said firstpredetermined value, and control a moving direction of said object onthe basis of said gyro signal in a case that the magnitude of said gyrosignal is determined to be above said first predetermined value.
 6. Anon-transitory storage medium storing an information processing programaccording to claim 3, wherein said information processing programfurther causes said computer to perform functionality comprising atleast: sequentially store magnitude data corresponding to the magnitudeof said gyro signal in a storage location, calculate, on the basis ofmagnitudes of a plurality of gyro signals indicated by the magnitudedata stored in said storage location, an extreme of the magnitudes ofsaid gyro signals, determine whether or not the extreme of the magnitudeof the gyro signal is above a second predetermined value, and controlsaid object such that said object performs said second motion withinsaid virtual space on the basis of said gyro signal in a case that saidextreme is determined to be above said second predetermined value.
 7. Anon-transitory storage medium storing an information processing programaccording to claim 3, wherein said information processing apparatus is agame apparatus for controlling a motion of said object within saidvirtual space.
 8. A non-transitory storage medium storing an informationprocessing program according to claim 7, wherein a moving velocity and amoving direction of said object are controlled on the basis of the gyrosignal in a case that the magnitude of said gyro signal is determined tobe above said first predetermined value.
 9. A non-transitory storagemedium storing an information processing program according to claim 7,wherein said input device further comprises an acceleration sensor, saidinformation processing program further causes said computer to performfunctionality comprising at least: calculate an acceleration signalcorresponding to an acceleration occurring to said input device on thebasis of an output from said acceleration sensor, control a movingvelocity of said object on the basis of the calculated accelerationsignal in a case that the magnitude of the gyro signal is determined tobe above said first predetermined value, and control a moving directionof said object on the basis of the gyro signal in a case that themagnitude of said gyro signal is above said first predetermined value.10. A non-transitory storage medium storing an information processingprogram according to claim 7, wherein said information processingprogram further causes said computer to perform functionality comprisingat least: sequentially store magnitude data corresponding to themagnitude of said gyro signal in a storage location, calculate, on thebasis of magnitudes of a plurality of gyro signals indicated by themagnitude data stored in said storage location, an extreme of themagnitudes of said gyro signals, determine whether or not the extreme ofthe magnitude of the gyro signal is above a second predetermined value,and control said object such that said object performs said secondmotion within said virtual space on the basis of the gyro signal in acase that said extreme is determined to be above said secondpredetermined value.
 11. A non-transitory storage medium storing aninformation processing program according to claim 1, wherein said objectis arranged within said virtual space according to at least any one of aposition and an orientation which are decided on the basis of saidstatus signal.
 12. A non-transitory storage medium storing aninformation processing program according to claim 1, wherein said inputdevice is formed with a single housing.
 13. An information processingapparatus for controlling a motion of an object within a virtual spaceon the basis of a status signal output from a detector configured todetect a status including at least one of a position and an attitude ofan input device, comprising: a first motion controller configured tocontrol said object such that said object performs a first motion withinsaid virtual space on the basis of said status signal, a conditiondetermining circuit configured to determine whether or not informationrelative to a magnitude of said status signal satisfies a predeterminedcondition during when said object is controlled to perform said firstmotion within said virtual space, and a second motion controllerconfigured to control said object such that said object performs asecond motion different from said first motion on the basis of saidstatus signal within said virtual space in a case that said conditiondetermining circuit determines that the information relative to amagnitude of said status signal satisfies the predetermined condition.14. An information processing method of an information processingapparatus for controlling a motion of an object within a virtual spaceon the basis of a status signal output from a detector configured todetect a status including at least one of a position and an attitude ofan input device, the method comprising: (a) controlling, in connectionwith the information processing apparatus, said object such that saidobject performs a first motion within said virtual space on the basis ofsaid status signal, (b) determining whether or not information relativeto a magnitude of said status signal satisfies a predetermined conditionduring when said object is controlled to perform said first motionwithin said virtual space, and (c) controlling, in connection with theinformation processing apparatus, said object such that said objectperforms a second motion different from said first motion within saidvirtual space on the basis of the status signal in a case that theinformation relative to a magnitude of said status signal is determinedto satisfy the predetermined condition in (b).
 15. An informationprocessing system for controlling a motion of an object within a virtualspace on the basis of a status signal output from a detector configuredto detect a status including at least one of a position and an attitudeof an input device, comprising: processing resources, including at leastone processor and a memory, configured to: control said object such thatsaid object performs a first motion within said virtual space on thebasis of said status signal, determine whether or not informationrelative to a magnitude of said status signal satisfies a predeterminedcondition during when said object is controlled to perform said firstmotion within said virtual space, and control said object such that saidobject performs a second motion different from said first motion on thebasis of said status signal within said virtual space in a case thatsaid condition determining circuit determines that the informationrelative to a magnitude of said status signal satisfies thepredetermined condition.